It is commonplace to selectively use different networks for routing data in an attempt to obtain superior outcomes. However, existing approaches used for this have a number of drawbacks. For example, in some cases, routing systems may be implemented to simply check if a network within a particular class and/or having a particular attribute is available and, if it is, will automatically use that network. However, this can lead to sub-optimal results, such as in a case where a particular network is inappropriate for a particular routing task even if that network is part of a class and/or has an attribute that would normally be expected to lead to superior results. Even more sophisticated systems that optimize various path selection criteria when making routing decisions can have drawbacks. For example, the selection and/or calculation of various path selection criteria may be opaque and/or difficult which, in some contexts, may cause routing systems to eschew this type of routing entirely. Similarly, even when optimization of path selection is implemented, it may lead to sub-optimal results. For example, in a case where there is some contextual requirement, such as security, that is not reflected in a routing system's optimized path selection criteria, optimization of path selection criteria may result in a network being used that is inappropriate for a particular task even though it would provide optimized path selection criteria values. Accordingly, for these and other reasons there is a need for improvements in computer systems used in routing data.